/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package be.ugent.maf.cellmissy.gui.experiment.analysis.singlecell;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;

/**
 *
 * @author Paola Masuzzo <paola.masuzzo@ugent.be>
 */
public class SingleCellAnalysisPanel extends javax.swing.JPanel {

    public JTable getTrackPointsTable() {
        return trackPointsTable;
    }

    public JTable getTracksTable() {
        return tracksTable;
    }

    public JScrollPane getTrackPointsScrollPane() {
        return trackPointsScrollPane;
    }

    public JScrollPane getTracksScrollPane() {
        return tracksScrollPane;
    }

    public JPanel getBottomPanel() {
        return bottomPanel;
    }

    public JLabel getInspectingDataLabel() {
        return inspectingDataLabel;
    }

    public JLabel getTrackCoordinatesLabel() {
        return trackCoordinatesLabel;
    }

    public JPanel getTrackCoordinatesParentPanel() {
        return trackCoordinatesParentPanel;
    }

    public JPanel getVelocitiesParentPanel() {
        return velocitiesParentPanel;
    }

    public JLabel getVelocitiesLabel() {
        return velocitiesLabel;
    }

    public JTextArea getLogTextArea() {
        return logTextArea;
    }

    /**
     * Creates new form SingleCellAnalysisPanel
     */
    public SingleCellAnalysisPanel() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {
        java.awt.GridBagConstraints gridBagConstraints;

        topPanel = new javax.swing.JPanel();
        inspectingDataLabel = new javax.swing.JLabel();
        trackCoordinatesLabel = new javax.swing.JLabel();
        velocitiesLabel = new javax.swing.JLabel();
        bottomPanel = new javax.swing.JPanel();
        inspectingDataPanel = new javax.swing.JPanel();
        jPanel1 = new javax.swing.JPanel();
        tracksScrollPane = new javax.swing.JScrollPane();
        tracksTable = new javax.swing.JTable();
        jPanel2 = new javax.swing.JPanel();
        trackPointsScrollPane = new javax.swing.JScrollPane();
        trackPointsTable = new javax.swing.JTable();
        jScrollPane6 = new javax.swing.JScrollPane();
        logTextArea = new javax.swing.JTextArea();
        trackCoordinatesParentPanel = new javax.swing.JPanel();
        velocitiesParentPanel = new javax.swing.JPanel();

        setBackground(new java.awt.Color(255, 255, 255));
        setLayout(new java.awt.GridBagLayout());

        topPanel.setMinimumSize(new java.awt.Dimension(20, 20));
        topPanel.setOpaque(false);
        topPanel.setPreferredSize(new java.awt.Dimension(20, 20));

        inspectingDataLabel.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        inspectingDataLabel.setText("1. Inspecting Data");
        inspectingDataLabel.setToolTipText("Data loaded from DB");

        trackCoordinatesLabel.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        trackCoordinatesLabel.setText("2. Track Coordinates");
        trackCoordinatesLabel.setToolTipText("Data pre-processing: normalization and outliers detection");

        velocitiesLabel.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        velocitiesLabel.setText("3. Single Cell Velocities");
        velocitiesLabel.setToolTipText("Data pre-processing: normalization and outliers detection");

        javax.swing.GroupLayout topPanelLayout = new javax.swing.GroupLayout(topPanel);
        topPanel.setLayout(topPanelLayout);
        topPanelLayout.setHorizontalGroup(
            topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(topPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(inspectingDataLabel)
                .addGap(18, 18, 18)
                .addComponent(trackCoordinatesLabel)
                .addGap(18, 18, 18)
                .addComponent(velocitiesLabel)
                .addContainerGap(663, Short.MAX_VALUE))
        );
        topPanelLayout.setVerticalGroup(
            topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(topPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(topPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(inspectingDataLabel)
                    .addComponent(trackCoordinatesLabel)
                    .addComponent(velocitiesLabel))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
        gridBagConstraints.weightx = 1.0;
        gridBagConstraints.weighty = 0.02;
        add(topPanel, gridBagConstraints);

        bottomPanel.setMinimumSize(new java.awt.Dimension(20, 20));
        bottomPanel.setOpaque(false);
        bottomPanel.setPreferredSize(new java.awt.Dimension(20, 20));
        bottomPanel.setLayout(new java.awt.CardLayout());

        inspectingDataPanel.setMinimumSize(new java.awt.Dimension(20, 20));
        inspectingDataPanel.setName("inspectingDataPanel"); // NOI18N
        inspectingDataPanel.setOpaque(false);

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Tracks from DB"));

        tracksTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        tracksScrollPane.setViewportView(tracksTable);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(tracksScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 985, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(tracksScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 194, Short.MAX_VALUE)
                .addContainerGap())
        );

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Track Points for selected track"));

        trackPointsTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        trackPointsScrollPane.setViewportView(trackPointsTable);

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(trackPointsScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 985, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(trackPointsScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        jScrollPane6.setBorder(javax.swing.BorderFactory.createTitledBorder("Info"));

        logTextArea.setEditable(false);
        logTextArea.setColumns(20);
        logTextArea.setFont(new java.awt.Font("Monospaced", 0, 14)); // NOI18N
        logTextArea.setForeground(new java.awt.Color(0, 51, 204));
        logTextArea.setLineWrap(true);
        logTextArea.setRows(5);
        logTextArea.setWrapStyleWord(true);
        jScrollPane6.setViewportView(logTextArea);

        javax.swing.GroupLayout inspectingDataPanelLayout = new javax.swing.GroupLayout(inspectingDataPanel);
        inspectingDataPanel.setLayout(inspectingDataPanelLayout);
        inspectingDataPanelLayout.setHorizontalGroup(
            inspectingDataPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(inspectingDataPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(inspectingDataPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jScrollPane6, javax.swing.GroupLayout.DEFAULT_SIZE, 1017, Short.MAX_VALUE))
                .addContainerGap())
        );
        inspectingDataPanelLayout.setVerticalGroup(
            inspectingDataPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(inspectingDataPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jScrollPane6, javax.swing.GroupLayout.DEFAULT_SIZE, 168, Short.MAX_VALUE)
                .addContainerGap())
        );

        bottomPanel.add(inspectingDataPanel, "inspectingDataPanel");
        inspectingDataPanel.getAccessibleContext().setAccessibleName("inspectingDataPanel");

        trackCoordinatesParentPanel.setMinimumSize(new java.awt.Dimension(20, 20));
        trackCoordinatesParentPanel.setName("trackCoordinatesParentPanel"); // NOI18N
        trackCoordinatesParentPanel.setOpaque(false);
        trackCoordinatesParentPanel.setLayout(new java.awt.GridBagLayout());
        bottomPanel.add(trackCoordinatesParentPanel, "trackCoordinatesParentPanel");
        trackCoordinatesParentPanel.getAccessibleContext().setAccessibleName("trackCoordinatesParentPanel");

        velocitiesParentPanel.setMinimumSize(new java.awt.Dimension(20, 20));
        velocitiesParentPanel.setName("velocitiesParentPanel"); // NOI18N
        velocitiesParentPanel.setOpaque(false);
        velocitiesParentPanel.setLayout(new java.awt.GridBagLayout());
        bottomPanel.add(velocitiesParentPanel, "velocitiesParentPanel");
        velocitiesParentPanel.getAccessibleContext().setAccessibleName("velocitiesParentPanel");
        velocitiesParentPanel.getAccessibleContext().setAccessibleDescription("");

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH;
        gridBagConstraints.weightx = 1.0;
        gridBagConstraints.weighty = 0.98;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 10);
        add(bottomPanel, gridBagConstraints);
    }// </editor-fold>//GEN-END:initComponents
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel bottomPanel;
    private javax.swing.JLabel inspectingDataLabel;
    private javax.swing.JPanel inspectingDataPanel;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane6;
    private javax.swing.JTextArea logTextArea;
    private javax.swing.JPanel topPanel;
    private javax.swing.JLabel trackCoordinatesLabel;
    private javax.swing.JPanel trackCoordinatesParentPanel;
    private javax.swing.JScrollPane trackPointsScrollPane;
    private javax.swing.JTable trackPointsTable;
    private javax.swing.JScrollPane tracksScrollPane;
    private javax.swing.JTable tracksTable;
    private javax.swing.JLabel velocitiesLabel;
    private javax.swing.JPanel velocitiesParentPanel;
    // End of variables declaration//GEN-END:variables
}
